package com.sml.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//统一响应结果
@NoArgsConstructor//自动生成无参构造函数
@AllArgsConstructor//自动生成全参数构造函数（对所有字段）
@Data //自动生成getter/setter/equals/hashCode/toString方法
public class Result<T> {
    private Integer code; //响应码，1 代表失败，0 代表成功
    private String message; //提示信息
    private T data;//响应数据

    //快速返回操作成功响应结构（带响应数据）
    public static <E> Result<E> success(E data) {
        return new Result<E>(0, "操作成功", data);
    }

    //快速返回操作成功响应结构（不带响应
    public static <E> Result<E> success() {
        return new Result<E>(0, "操作成功", null);
    }

    //快速返回操作失败响应结构
    public static <E> Result<E> error(String message) {
        return new Result<E>(1, message, null);
    }
}
